home *** CD-ROM | disk | FTP | other *** search
- ;************************************************************************
- ;* Header-Library, Programmrumpf *
- ;* ©1989 by Σ-soft, written by Markus Fritze 18.06.1988 01:30 *
- ;************************************************************************
- movea.l 4(sp),a6 ;Basepageadresse holen
- movea.w #$100+$400,a5 ;Größe der Basepage + Stackgröße (1k)
- adda.l 12(a6),a5 ;+ Größe des TEXT-Segments
- adda.l 20(a6),a5 ;+ Größe des DATA-Segments
- adda.l 28(a6),a5 ;+ Größe des BSS-Segments
- move.l a5,d1 ;= Gesamtlänge des Programms
- and.w #$FFFE,d1 ;Länge nun gerade
- add.l a6,d1 ;+ Programmstart (Basepageadresse)
- move.l d1,sp ;Stack endet dort
- move.l a5,-(sp) ;Programmlänge
- move.l a6,-(sp) ;Adresse der Basepage
- move.l #$4A0000,-(sp) ;Funktionsnummer + Dummyword (0)
- trap #1 ;Mshrink(0,Basepageadr,Prglänge)
- lea 12(sp),sp ;Nur noch den Stack korrigieren
- ;Das war schon alles. In A6 befindet sich noch die Basepageadresse und in a5
- ;liegt die totale Programmlänge (TRAP #1 zerstört D0-D2 und A0-A2!)
-
- ;Hier kann nun das eigene Programm liegen
-
- clr.w -(sp)
- trap #1 ;Pterm ausführen => Programmende
-
-